<?php

namespace App\Http\Controllers\Admin;

use App\Http\Models\Auth;
use App\Http\Models\Role;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Response;

class RoleController extends Controller
{
    public function add(Request $request)
    {
        if($request->isMethod('POST')){
            // 入库
            $data = $request->only(['show_name']); // 接收 角色表 name字段 英文名称 拼音
            // https://github.com/overtrue/pinyin
            // easyWechat
            //1.cms系统里面，生成静态页，定义目录，一般定义中文名称，但是在操作系统里面 类Unix对中文不友好，系统使用拼音或者英文处理。
            //2.如果页面做静态化url地址，可以使用文章的标题进行生成命名 /yi_ge_ren_de_lv_xing.html
            $pinyin = app('pinyin');
            $data['name'] = $pinyin->permalink( $request->get('show_name'), '_');

            $status = Role::create($data);// 插入角色模型对象【定义角色和权限的关联模型】
            if($status){
                // 更新 sh_role_auth表里面角色对应的权限信息
                $authIds = $request->get('auths');
                $status->auths()->sync($authIds);
                // ajax提供
                return Response::json([
                    'status' => 'success',
                    'code' => 1000,
                    'msg' => '角色添加成功！'
                ]);

            }else{
                return Response::json([
                    'status' => 'failure',
                    'code' => 1002,
                    'msg' => '角色添加失败！'
                ]);
            }
        }

        // 获取所有的权限信息
        $auths = Auth::all();
        return view('admin.role.add', compact('auths'));
    }
    public function lst()
    {
        // 展示角色的时候，最好将角色的权限信息一起展示
        $size = 2;
        $roleData = Role::with('auths')->paginate($size);

        return view('admin.role.lst', compact('roleData'));
    }
}
